基于Nios II的機(jī)器人視覺(jué)伺服控制器的研究與設(shè)計(jì)
Altera公司的Nios II處理器是可編程邏輯器件的軟核處理器。NiosII軟核處理器和存儲(chǔ)器、I/O接口等外設(shè)可嵌入到FPGA中,組成一個(gè)可編程單芯片系統(tǒng)(SOPC),大大降低了系統(tǒng)的成本、體積和功耗。適合網(wǎng)絡(luò)、電信、數(shù)據(jù)通信、嵌入式和消費(fèi)市場(chǎng)等各種嵌入式應(yīng)用場(chǎng)合。
本文提出一個(gè)基于Nios II處理器結(jié)構(gòu)的系統(tǒng)用于實(shí)現(xiàn)機(jī)器人實(shí)時(shí)運(yùn)動(dòng)檢測(cè)跟蹤,使用線性卡爾曼濾波器算法來(lái)快速完成運(yùn)動(dòng)估計(jì)及進(jìn)一步分析和校正,算法中的乘除利用MATLAB/DSP Builder生成的模塊作為Nios II處理器的自定義指令的設(shè)計(jì)方法。
機(jī)器人視覺(jué)伺服控制器的研究與設(shè)計(jì)
機(jī)器人視覺(jué)伺服控制就是用各種成像系統(tǒng)代替視覺(jué)器官作為輸入的敏感手段,并由高速處理器替代大腦完成相應(yīng)的處理和解釋?zhuān)渥罱K研究目標(biāo)就是使機(jī)器人視覺(jué)伺服控制器能像人那樣通過(guò)視覺(jué)觀察和理解世界,具有自主適應(yīng)環(huán)境的能力,可依據(jù)視覺(jué)敏感和反饋,以某種程度的智能完成一定的任務(wù)。
系統(tǒng)硬件實(shí)現(xiàn)
基于SOPC的機(jī)器人視覺(jué)伺服控制器,主要由FPGA、存儲(chǔ)器和外設(shè)三個(gè)部分。
攝像頭位置固定,它所能采集圖像的范圍稱(chēng)為視覺(jué)區(qū)域,調(diào)整攝像機(jī)使視覺(jué)區(qū)域覆蓋機(jī)器人的工作空間,即機(jī)器人要跟蹤的曲線在該視覺(jué)區(qū)域內(nèi)。利用攝像機(jī)采集圖像,而后系統(tǒng)對(duì)采集的圖像進(jìn)行處理,分析、提取出離散的采樣點(diǎn)序列,最后再根據(jù)采樣點(diǎn)序列規(guī)劃?rùn)C(jī)器人的運(yùn)動(dòng)路徑。其中,F(xiàn)PGA部分核心是Nios II處理器Core。在一般的嵌入式系統(tǒng)開(kāi)發(fā)中,當(dāng)需要新的外設(shè)模塊時(shí)往往需要在PCB上加入相應(yīng)的外設(shè)芯片或者換用更高檔的CPU,而SOPC設(shè)計(jì)可以同一個(gè)FPGA芯片內(nèi)加入相應(yīng)的外設(shè)模塊核,并通過(guò)在片上的Avalon總線與NiosⅡ處理器Core相連,因而不需要在PCB這個(gè)層面上作更多的修改。成像采集裝置從目標(biāo)對(duì)象場(chǎng)景中采集圖像序列,保存在SOPC的片外存儲(chǔ)器中,然后利用NiosⅡ處理器和定制的乘法、除法等DSP運(yùn)算指令來(lái)實(shí)現(xiàn)線形卡爾曼濾波器的算法,從而實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的識(shí)別與跟蹤。
系統(tǒng)軟件的實(shí)現(xiàn)
離散線性卡爾曼濾波算法
線性卡爾曼濾波是美國(guó)工程師Kalman在線性最小方差估計(jì)的基礎(chǔ)上,提出的數(shù)學(xué)結(jié)構(gòu)上比較簡(jiǎn)單的最優(yōu)線性遞推濾波方法,具有計(jì)算量、存儲(chǔ)量低,實(shí)時(shí)性高的優(yōu)點(diǎn)。特別是經(jīng)歷了初始濾波的過(guò)渡狀態(tài)后,濾波效果非常好。
線性卡爾曼濾波基本算法如下:設(shè)一隨機(jī)動(dòng)態(tài)系統(tǒng),其數(shù)學(xué)模型為:
公式1中x(k)為系統(tǒng)狀態(tài)矢量,w(k)為系統(tǒng)噪音矢量,φ(k),Г(k)為系統(tǒng)矩陣,公式2中Z(k)為系統(tǒng)觀測(cè)矢量,H(k)為系統(tǒng)觀測(cè)矩陣,V(k)為系統(tǒng)觀測(cè)噪音矩陣。
關(guān)于系統(tǒng)的隨機(jī)性,本文假定,系統(tǒng)噪音和觀測(cè)噪音是不相關(guān)的零均值高斯白噪聲。隨機(jī)系統(tǒng)的狀態(tài)估計(jì)問(wèn)題,就是根據(jù)選定的估計(jì)準(zhǔn)則和獲取的測(cè)量信息對(duì)系統(tǒng)狀態(tài)進(jìn)行估計(jì),卡爾曼濾波的估計(jì)準(zhǔn)則是:
其中,,即估計(jì)是x(k)無(wú)偏和最小方差,根據(jù)這兩個(gè)準(zhǔn)則可推導(dǎo)出對(duì)系統(tǒng)的完整的濾波算法,即:
預(yù)測(cè)誤差方程為:
增益矩陣方程為:
濾波誤差方差陣為:
上述公式中I是單位矩陣,Q為w(k)自協(xié)方差方差陣,R為V(k)自協(xié)方差方差陣??柭鼮V波采用遞推算法,計(jì)算最優(yōu)濾波值時(shí),K(k+1)由P(k+1|k)來(lái)確定,P(k+1|k)由P(k)來(lái)確定,P(k+1)由P(k+1|k)和K(k+1)來(lái)確定,如此反復(fù)遞推運(yùn)算。
系統(tǒng)程序流程
本系統(tǒng)的主要功能是完成運(yùn)動(dòng)目標(biāo)的鎖定,并控制運(yùn)動(dòng)平臺(tái)對(duì)目標(biāo)進(jìn)行實(shí)時(shí)跟蹤。使用高性能NiosII處理器作為控制器控制著整個(gè)系統(tǒng)的實(shí)現(xiàn)流程和高效的線性卡爾曼濾波算法對(duì)目標(biāo)運(yùn)動(dòng)參數(shù)的估計(jì),有效地提高了圖像處理速度,實(shí)現(xiàn)了運(yùn)動(dòng)目標(biāo)的快速跟蹤。以下是系統(tǒng)流程:
1.系統(tǒng)初始化:由SOPC通過(guò)控制總線設(shè)置USB接口微型攝像頭工作模式,并初始化其主控程序變量。 2.確定運(yùn)動(dòng)區(qū)域:由Nios II處理器根據(jù)圖像序列鎖定運(yùn)動(dòng)物體,根據(jù)被跟蹤物體確定運(yùn)動(dòng)跟蹤區(qū)間,接下來(lái)的跟蹤操作都是在這個(gè)跟蹤窗口中進(jìn)行。 3.預(yù)測(cè)計(jì)算:利用線形卡爾曼濾波器方程進(jìn)行計(jì)算。 4.濾波:預(yù)測(cè)和濾波是相互作用的,即由濾波得到預(yù)測(cè)而由預(yù)測(cè)又可得到濾波。 5.輸出:SOPC發(fā)出控制信號(hào)給隨動(dòng)平臺(tái)。
該系統(tǒng)采用集成了Nios軟核處理器的Stratix高密度FPGA,控制器通過(guò)攝像頭記錄每一時(shí)刻運(yùn)動(dòng)目標(biāo)的位置和速度作為觀測(cè)值。然后按照公式(3)、(4)、(5)、(6)進(jìn)行最佳狀態(tài)估計(jì),得到每一時(shí)刻運(yùn)動(dòng)目標(biāo)的位置和速度的預(yù)測(cè)值。由于各種干擾因素的存在,經(jīng)過(guò)七八個(gè)時(shí)間段后預(yù)測(cè)位置與觀測(cè)位置相當(dāng)接近,即可實(shí)現(xiàn)準(zhǔn)確的狀態(tài)預(yù)測(cè)。
結(jié)語(yǔ)
本文建立了一套基于SOPC結(jié)構(gòu)的多關(guān)節(jié)機(jī)器人視覺(jué)伺服系統(tǒng),主要應(yīng)用線性卡爾曼濾波算法成功的預(yù)測(cè)了運(yùn)動(dòng)目標(biāo)的狀態(tài)參數(shù)功能是鎖定運(yùn)動(dòng)目標(biāo),實(shí)現(xiàn)對(duì)目標(biāo)進(jìn)行實(shí)時(shí)跟蹤。由于應(yīng)用卡爾曼濾波后極大地縮小了搜索空間,減少了系統(tǒng)的圖像處理時(shí)間,可以有效地提高系統(tǒng)的實(shí)時(shí)性,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的快速跟蹤。 |
查看更多評(píng)論